Recently, datacenters have attracted considerable attention for their capability to provide remote and/or distributed execution of applications. Although the applications run remotely from the users, the latter may use, access, and operate the applications that can be run on virtual machines, from anywhere via networks, such as the internet.
In this context, the term cloud computing has been coined as being a form of internet-based computing, wherein shared resources, software, and information are provided to users over the internet. In other words, cloud computing can be seen as a new way of utilizing and marketing the capabilities of datacenters. In the latter, the applications actually run and the respective user data is processed. Typical to clouds is the usage of virtual machine images in which a set of applications is installed. Such an image is started on a server of a datacenter on demand. If the demand for a certain application changes, images of the same or a similar type which provide this application might be started or removed. Thus, the term application may specify the application as such or the virtual machine image (or simply image) on which one or more applications are running.
Datacenters are usually organized in a hierarchical way. As shown in conjunction with FIG. 1, a datacenter 1′ comprises a plurality of processing units (so-called server blades) 10. These processing units 10 are coupled to some sort of datacenter access point via at least one switch level 200. The access point may be an external gateway or router, such as the shown gateway entity 30. In the shown structure, there are actually three switch levels 201, 202, 203, which constitute the hierarchical structure of the datacenter 1′. The processing units 10 that offer a usually virtualized platform for applications may be thus organized in racks which—in turn—are organized in rows which—in turn—are organized in so-called sections. For example the hierarchy of the sections would correspond to the switch level 201, the hierarchy of the rows would correspond to the switch level 202, and the hierarchy of the racks would correspond to the switch level 203. Data paths 40, which can also be referred to as network paths lead to each of the processing units 10.
Central routers, such as the gateway entity 30, connect the entire datacenter 1′ to an external network like the internet and distribute the data traffic within the datacenter to the hierarchical levels. For this purpose, there are provided subsequent switches or routers that distribute the data traffic within the datacenter. In the shown example, section switches distribute the data traffic to rows. Row switches distribute to racks and finally rack switches connect to the server blades or processing units to the rest of the data center.
As an option, the above-described hierarchical structure in datacenters can also be accompanied by additional direct short-cuts between parts of the datacenter, which are introduced in order to increase the internal networking capabilities. For example, two rack router switches 23 may also communicate directly to each other, despite a respective communication via the associated row router switch 22. Also, the number of hierarchy levels might vary depending on size and complexity of the datacenter.
In order to run applications that have significant demands on networking capabilities, the datacenters and its components (hierarchical levels, switches, routers, etc.) should provide sufficient network communication capabilities for meeting the application's demands on communication traffic. This may imply that the one processing unit where an instance of the application (or image) is physically executed needs to be coupled via a network path through the datacenter hierarchy and the external interconnection (gateway) to the internet that satisfies the networking needs of the applications. Depending on the application and image these networking needs could be, for example, a certain minimum data transmission bandwidth.
When allocating an application within a datacenter the processing demands of the image and its applications are considered. The application/image is started on a server blade where sufficient processing capacity is available. The networking demands as described above are usually only considered with a best effort strategy: A rough categorization in high and low networking capabilities is done and used in application allocation. This can lead to the situation that an application would be in principle able to process its tasks, but its communication with other parts of the datacenter or external users might be congested. The result would be a bad utilization of the processing capabilities and finally a bad user experience. In many application scenarios, where the user experience and responsiveness of an application or service is a key performance indicator, this situation in not acceptable. This is, for example, the case for telecommunication services. This situation may lead to disadvantages, if other parts of the datacenter would have sufficient networking capacity in order to serve the application's demands. In this case a different allocation of the image and application within the datacenter would result in a significantly improved overall service.